package com.ctshk.common.utils;

import com.ctshk.common.enums.SystemError;
import com.ctshk.common.exception.BusinessException;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;

import java.util.Collection;
import java.util.Map;

/**
 * @BelongsProject: ctshk-cloud
 * @BelongsPackage: com.ctshk.common.utils
 * @Author: hef
 * @CreateTime: 2021-04-26 17:45
 * @Description: 断言 方便快速抛出异常 中断程序执行
 */
public class Assert {
    /**
     * 必须为True
     *
     * @param b
     * @param error
     */
    public static void isTrue(boolean b, SystemError error, Object... format) {
        if (!b)
            throw new BusinessException(error, format);
    }

    /**
     * 条件为false则抛出异常
     *
     * @param b
     * @param error
     */
    public static void isFalse(boolean b, SystemError error, Object... format) {
        if (b)
            throw new BusinessException(error, format);
    }

    /**
     * 不能为NULL
     *
     * @param o
     * @param error
     */
    public static void nonNull(Object o, SystemError error, Object... format) {
        if (o == null)
            throw new BusinessException(error, format);
    }

    /**
     * 字符串不能为空
     *
     * @param str
     * @param error
     */
    public static void notBlank(String str, SystemError error, Object... format) {
        if (StringUtils.isBlank(str))
            throw new BusinessException(error, format);
    }


    /**
     * 集合不能为空
     *
     * @param collection
     * @param error
     */
    public static void notEmpty(Collection<?> collection, SystemError error, Object... format) {
        if (CollectionUtils.isEmpty(collection))
            throw new BusinessException(error, format);
    }

    /**
     * map不能为空
     *
     * @param map
     * @param error
     */
    public static void notEmpty(Map<?, ?> map, SystemError error, Object... format) {
        if (CollectionUtils.isEmpty(map))
            throw new BusinessException(error, format);
    }

    //TODO 后面可以加自己需要的
}
